/***********************************************************************************
 * 文件名： soft_pwm.c
 * 版本： 2
 * 说明：
 * 		一个软件模拟的8位PWM控制器。
 *      在定时器中断中调用 SPwm_EvTimer ，PWM频率 = 中断频率/255。在程序启动时调用 SPwm_Init
 *  进行初始化。通过调用 SPwm_SetValue 设置PWM值（决定占空比），为0是始终输出OFF，为255时始
 *  终输出ON。ON 和 OFF 具体代表什么在配置文件中设置。还提供了开始和停止运行的API，以及刹车
 *  等API，具体见头文件。
 * 修改记录：
 * 	2021/04/21: 初版。 刘言。
 *  2022/06/06: 新增配置各个通道初始值。刘言。
***********************************************************************************/
#include "soft_pwm.h"
#include "..\..\polsys.h"



bit _SPwm_Run;
u8 _SPwm_Count = 0;
u8 _SPwm_Value[SPWM_MAX_CH] = {
    _SPWM_CH0_INIT_VALUE
#if SPWM_MAX_CH > 1
    ,_SPWM_CH1_INIT_VALUE
#if SPWM_MAX_CH > 2
    ,_SPWM_CH2_INIT_VALUE
#if SPWM_MAX_CH > 3
    ,_SPWM_CH3_INIT_VALUE
#if SPWM_MAX_CH > 4
    ,_SPWM_CH4_INIT_VALUE
#if SPWM_MAX_CH > 5
    ,_SPWM_CH5_INIT_VALUE
#endif
#endif
#endif
#endif
#endif
    };


void SPwm_Brake(u8 ch)
{
    _SPwm_Value[ch] = 0;
    if(ch == 0)
    {
        _SPwm_Ch0Off();
    }
#if (SPWM_MAX_CH >=2)
    else if(ch == 1)
    {
        _SPwm_Ch1Off();
    }
#endif
#if (SPWM_MAX_CH >=3)
    else if(ch ==2)
    {
        _SPwm_Ch2Off();
    }
#endif
#if (SPWM_MAX_CH >=4)
    else if(ch ==3)
    {
        _SPwm_Ch3Off();
    }
#endif
#if (SPWM_MAX_CH >=5)
    else if(ch ==4)
    {
        _SPwm_Ch4Off();
    }
#endif
#if (SPWM_MAX_CH >=6)
    else if(ch ==5)
    {
        _SPwm_Ch5Off();
    }
#endif
}

